#include<bits/stdc++.h>
using namespace std;
int t;
int n;
int a[200005];
int h[200005][2];
int d[16];
int maxn=0;
void dfs(int dep){
    if(dep>n){
        int w0=0,w1=0,ans=0;
        for(int i=1;i<=n;i++){
            if(d[i]==1){
                if(a[w1]==a[i]){
                    ans+=a[i];
                }
                w1=i;
            }else{
                if(a[w0]==a[i]){
                    ans+=a[i];
                }
                w0=i;
            }
        }
        maxn=max(maxn,ans);
        return;
    }
    d[dep]=0;dfs(dep+1);
    d[dep]=1;dfs(dep+1);
}
void subtask1(){
    dfs(1);
    cout<<maxn<<endl;
}
void subtask2(){
    memset(h,0,sizeof(h));
    h[0][0]=h[0][1]=0;
    h[1][0]=h[1][1]=h[2][1]=0;
    h[2][0]=((a[1]==a[2])?a[1]:0);
    for(int i=3;i<=n;i++){
        h[i][0]=max(h[i-1][0],h[i-1][1])+((a[i]==a[i-1])?a[i]:0);
        h[i][1]=h[i-1][1]+((a[i]==a[i-2])?a[i]:0);
        int w=0;
        for(int j=i-2;j>=1;j--){
            w+=((a[j+1]==a[j])?a[j]:0);
            h[i][1]=max(h[i][1],h[j][1]+w+((a[i]==a[j-1])?a[i]:0));
        }
    }
    cout<<max(h[n][0],h[n][1])<<endl;
}
int main(){
    freopen("color.in","r",stdin);
    freopen("color.out","w",stdout);
    cin>>t;
    while(t--){
        cin>>n;
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
        }
        /*if(n<=15)subtask1();
        else subtask2();*/
        subtask2();
    }
    fclose(stdin);
    fclose(stdout);
    return 0;
}